package com.hjh.gameforum.service;

import com.hjh.gameforum.dto.TopicDto;
import com.hjh.gameforum.dto.TopicQueryParem;
import com.hjh.gameforum.dto.UserHomeQueryParem;
import com.hjh.gameforum.entity.Topic;
import com.hjh.gameforum.result.PageResult;
import com.hjh.gameforum.result.Result;
import com.hjh.gameforum.vo.TopicVo;

import java.util.List;
import java.util.Map;

public interface TopicService {

    PageResult<TopicVo> getTopics(TopicQueryParem topicQueryParem);

    void createTopic(TopicDto topicDto);

    List<TopicVo> getHotTopics();

    TopicVo getTopicById(Integer id);

    void updateTopicViews(Integer id);

    void likeTopic(Integer id,Integer AuthorId);

    void unlikeTopic(Integer id,Integer AuthorId);

    boolean getLikeStatus(Integer id);

    List<TopicVo> getPinnedTopics();

    void updateTopic(TopicDto topicDto);

    void setTopicStatus(Long topicId, Integer statusId);

    void deleteTopic(Long topicId);

    List<TopicVo> getTopicTop(String unit);

    Map<String, Object> getTopicCountStats(String unit);

    Long getTotalTopics();

    PageResult<TopicVo> getUserHomeTopics(UserHomeQueryParem userHomeQueryParem);
}
